package com.xingchi.tornado.sms.service;

import com.xingchi.tornado.model.PageResult;
import com.xingchi.tornado.sms.model.dto.NoteTemplateCreateDTO;
import com.xingchi.tornado.sms.model.dto.NoteTemplateDTO;
import com.xingchi.tornado.sms.model.dto.NoteTemplateQueryDTO;
import com.xingchi.tornado.mybatisplus.service.BasePlusService;
import com.xingchi.tornado.sms.model.dto.NoteTemplateUpdateDTO;
import com.xingchi.tornado.sms.model.vo.NoteTemplateVO;

import java.util.List;

/**
 * <p>
 * 短信模板 服务类
 * </p>
 *
 * @author xingchi
 * @date 2024-05-27 15:33
 */
public interface NoteTemplateService extends BasePlusService<NoteTemplateDTO, NoteTemplateQueryDTO> {

    /**
     * 查询所有的短信模板
     *
     * @return 短信模板list
     */
    List<NoteTemplateVO> findAll();

    /**
     * 分页查询短信模板信息
     *
     * @param query 查询条件
     * @return 查询结果
     */
    PageResult<NoteTemplateVO> pageList(NoteTemplateQueryDTO query);

    /**
     * 根据短信模板id查询短信模板信息
     *
     * @param id 短信模板id
     * @return 短信模板信息
     */
    NoteTemplateVO findById(Long id);

    /**
     * 根据业务类型查询短信模板信息
     *
     * @param businessType 短信模板类型
     * @return 短信模板信息
     */
    NoteTemplateVO selectByBusinessType(String businessType);

    /**
     * 创建短信模板信息
     *
     * @param noteTemplateCreateDTO 短信模板信息
     * @return 是否创建成功
     */
    boolean create(NoteTemplateCreateDTO noteTemplateCreateDTO);

    /**
     * 根据id更新短信模板信息
     *
     * @param noteTemplateUpdateDTO 短信模板更新类型
     * @return 是否更新成功
     */
    boolean update(NoteTemplateUpdateDTO noteTemplateUpdateDTO);
}
